package com.whit.nuoge.service.impl;


import com.whit.nuoge.dao.UsergroupDao;
import com.whit.nuoge.dao.impl.UsergroupDaoImpl;
import com.whit.nuoge.pojo.Page;
import com.whit.nuoge.pojo.Usergroup;
import com.whit.nuoge.service.UsergroupService;

import java.util.List;

public class UsergroupServiceImpl implements UsergroupService {

    UsergroupDao usergroupDao = new UsergroupDaoImpl();

    @Override
    public int save(Usergroup usergroup) {
        return usergroupDao.save(usergroup);
    }

    @Override
    public int update(Usergroup usergroup) {
        return usergroupDao.update(usergroup);
    }

    @Override
    public int deleteById(Integer id) {
        return usergroupDao.deleteById(id);
    }

    @Override
    public List<Usergroup> query() {
        return usergroupDao.query();
    }

    @Override
    public Usergroup queryById(Integer id) {
        return usergroupDao.queryById(id);
    }

    @Override
    public Page<Usergroup> page(Integer pageNo, Integer pageSize,String queryString) {
        Page<Usergroup> page = new Page<>();
        page.setPageSize(pageSize);
        Integer pageCount = usergroupDao.queryForPageCount(queryString);
        page.setPageCount(pageCount);
        Integer pageTotal = pageCount / pageSize;
        if (pageCount % pageSize > 0) {
            pageTotal++;
        }
        page.setPageTotal(pageTotal);
        page.setPageNo(pageNo);

        Integer begin = (page.getPageNo() - 1) * page.getPageSize();
        List<Usergroup> items = usergroupDao.queryForPageItems(begin, page.getPageSize(),queryString);
        page.setItems(items);

        return page;
    }

    @Override
    public Page<Usergroup> pageByQueryString(Integer pageNo, Integer pageSize, String queryString) {
        Page<Usergroup> page = new Page<>();

        page.setPageSize(pageSize);
        Integer pageCount = usergroupDao.queryForPageCountByQueryString(queryString);
        page.setPageCount(pageCount);
        Integer pageTotal = pageCount / pageSize;
        if (pageCount % pageSize > 0) {
            pageTotal++;
        }
        page.setPageTotal(pageTotal);

        page.setPageNo(pageNo);

        Integer begin = ( page.getPageNo() - 1 ) * page.getPageSize();
        if(begin<0){
            begin = 0;
        }
        List<Usergroup> items = usergroupDao.queryForPageItemsByQueryString(begin,page.getPageSize(),queryString);
        page.setItems(items);

        return page;
    }
}
